知道嗎?在 Laravel 世界裡,有一位神秘的助手,名叫 Artisan!
能幫助生成代碼,還能讓開發過程變得更加高效,快一起探索 Artisan 的魔法吧!
Artisan 是 Laravel 框架內建的命令行工具,可以幫忙自動生成代碼,像是生成模型、控制器和資料庫遷移 。
只需在命令行中輸入指令,就能執行各種操作。像是,輸入 php artisan serve
,就能啟動開發的伺服器。
Artisan 支援自定義命令,可以寫出符合自己需求的指令。
輸入 php artisan list
,就能看到一個指令清單,喚起我們的記憶,看看有什麼功能可以使用。
若是對某個指令有疑問,輸入 php artisan help <command>
就會跟我們說說如何使用!
以 php artisan help
為例
說明:顯示某個命令可以幫助我們的訊息。
使用指令:
# command_name:要顯示幫助的命令名稱
help [options] [--] [<command_name>]
產生畫面:
以 php artisan help make:controller
為例
說明:我們創建一個新的控制器類。
使用指令:
# name:指定要創建的控制器的名稱
make:controller [options] [--] <name>
產生畫面:
我們使用指令 php artisan
,就是在說我們使用 php
去執行 artisan
這個檔案
指令 | 說明 |
---|---|
php artisan help |
顯示所有可用指令的幫助信息。 |
php artisan list |
列出所有可用的 Artisan 指令。 |
指令 | 說明 |
---|---|
php artisan migrate |
執行所有未執行的資料庫遷移。 |
php artisan migrate:rollback |
回滾最近的資料庫遷移。 |
php artisan migrate:status |
顯示所有遷移的狀態。 |
php artisan db:seed |
執行資料庫填充器,填入測試數據。 |
指令 | 說明 |
---|---|
php artisan make:model ModelName |
創建一個新的 Eloquent 模型。 |
php artisan make:controller ControllerName |
創建一個新的控制器。 |
php artisan make:migration create_table_name |
創建一個新的遷移文件。 |
php artisan make:resource ResourceName |
創建一個新的 API 資源。 |
指令 | 說明 |
---|---|
php artisan serve |
啟動內建的 PHP 伺服器,預設在 http://localhost:8000。 |
指令 | 說明 |
---|---|
php artisan config:cache |
將所有配置緩存到單個文件中,提高性能。 |
php artisan cache:clear |
清除緩存的數據。 |
php artisan route:clear |
清除路由快取。 |
指令 | 說明 |
---|---|
php artisan tinker |
啟動 Tinker REPL,方便即時測試代碼。 |
php artisan make:enum EnumName |
創建一個新的列舉(enum)。 |
Laravel Tinker 是一個強大的 REPL(Read-Eval-Print Loop)工具,允許開發者在命令行中直接與 Laravel 應用程序互動。它基於 PsySH,提供了一個友好的環境來測試代碼、執行查詢和操作 Eloquent 模型。
啟動 Tinker:
php artisan tinker
退出 Tinker:
exit
交互式環境:
Tinker 提供了一個即時的交互式環境,讓我們可以隨時執行 PHP 代碼,並立即看到結果。就是說我們不需要創造環境,不需要打開 vscode,就可以直接在終端機中輸入內容測試代碼。
舉例:想測試簡單的數學運算,只需在 Tinker 中輸入:
echo 1 + 1; // 返回 2
操作 Eloquent 模型:
透過 Tinker,可以輕鬆地與資料庫中的 Eloquent 模型互動。比如創建新用戶、查詢資料或更新紀錄,全部都可以在 Tinker 中完成。
舉例:創建一個新用戶,可以這樣寫:
然後查詢所有用戶:
$user = new App\\Models\\User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();
App\\Models\\User::all();
執行 Artisan 命令:
Tinker 允許執行一些常用的 Artisan 命令,這樣你就可以在命令行中進行維護和測試。這對於快速清理資料或檢查應用狀態特別有用。
舉例:如果你想清理快取,可以直接在 Tinker 中運行:
Artisan::call('config:clear');
在 Laravel 中,除了Artisan 提供的命令外,我們也可以創建自訂的命令來擴展 Artisan 功能。這些命令通常存放在 app/Console/Commands
目錄中。
可以使用 make:command
Artisan 指令來創建新命令。
php artisan make:command SendEmails
生成命令後,你需要為類別中的 signature
和 description
屬性設置適當的值,這些值會在命令列表中顯示。signature
屬性用於定義 Artisan 命令的輸入要求,在 handle
方法寫入命令的邏輯,當運行這個命令時,這個方法中的邏輯會被執行。
class SendEmails extends Command
{
protected $signature = 'mail:send {user}';
protected $description = 'Send a marketing email to a user';
// 注入了 DripEmailer 服務,讓它負責實際的郵件發送工作
public function handle(DripEmailer $drip): void
{
$drip->send(User::find($this->argument('user')));
}
}
handle
方法執行成功且沒有返回值,則命令會以 0 退出,表示成功。$this->error('Something went wrong.');
return 1;
fail
方法,通常用於無法繼續執行的情況$this->fail('Something went wrong.');
參考資料:
Laravel 11 的 Artisan 是開發者的小幫手,能提升開發效率,透過命令和 Tinker 工具,我們可以輕鬆測試和操作代碼。善用 Artisan 的功能,讓我們的開發之路更更上一層樓吧!
參考資料:
踏著身心靈的塔羅腳步,轉向技術與邏輯的工程師之路,就藉由塔羅日抽來紀錄今日的學習與生活吧!
寶劍騎士:Laravel 11 的 Artisan 功能可以就像寶劍騎士的敏捷與靈活,能迅速應對挑戰
“Have faith in your dreams and someday, your rainbow will come smiling
through! No matter how your heart is grieving, if you keep on believing,
the dream that you wish will come true.”對你的夢想有信心,總有一天,你的彩虹會微笑著走過來!無論你的心有多悲痛,只要你繼續相信,你所希望的夢想就會成真。
— Cinderella